import type {BasicColumn, FormSchema} from '@/components/Table'
import {useRender} from '@/components/Table'

export const columns: BasicColumn[] = [
  {
    title: 'id',
    dataIndex: 'id',
    width: 160,
  },
  {
    title: '事件id',
    dataIndex: 'eventId',
    width: 160,
  },
  {
    title: '服务ID',
    dataIndex: 'serviceId',
    width: 160,
  },
  {
    title: '指示数据类型。取值范围：string、int、decimal',
    dataIndex: 'datatype',
    width: 160,
  },
  {
    title: '指示枚举值。	如开关状态status可有如下取值	"enumList" : ["OPEN","CLOSE"]	目前本字段是非功能性字段，仅起到描述作用。建议准确定义。',
    dataIndex: 'enumlist',
    width: 160,
  },
  {
    title: '指示最大值。	仅当dataType为int、decimal时生效，逻辑小于等于。',
    dataIndex: 'max',
    width: 160,
  },
  {
    title: '指示字符串长度。	仅当dataType为string时生效。',
    dataIndex: 'maxlength',
    width: 160,
  },
  {
    title: '指示最小值。	仅当dataType为int、decimal时生效，逻辑大于等于。',
    dataIndex: 'min',
    width: 160,
  },
  {
    title: '命令中参数的描述，不影响实际功能，可配置为空字符串""。',
    dataIndex: 'parameterDescription',
    width: 160,
  },
  {
    title: '命令中参数的名字。',
    dataIndex: 'parameterName',
    width: 160,
  },
  {
    title: '指示本条属性是否必填，取值为0或1，默认取值1（必填）。	目前本字段是非功能性字段，仅起到描述作用。',
    dataIndex: 'required',
    width: 160,
  },
  {
    title: '指示步长。',
    dataIndex: 'step',
    width: 160,
  },
  {
    title: '指示单位。	取值根据参数确定，如：	•温度单位：“C”或“K”	•百分比单位：“%”	•压强单位：“Pa”或“kPa”',
    dataIndex: 'unit',
    width: 160,
  },
  {
    title: '创建者',
    dataIndex: 'createBy',
    width: 160,
  },
  {
    title: '创建时间',
    dataIndex: 'createTime',
    width: 180,
    customRender: ({ text }) => {
      return useRender.renderDate(text)
    },
  },
  {
    title: '更新者',
    dataIndex: 'updateBy',
    width: 160,
  },
]

export const searchFormSchema: FormSchema[] = [
  {
    label: '事件id',
    field: 'eventId',
    component: 'Input',
    colProps: { span: 8 },
  },
  {
    label: '服务ID',
    field: 'serviceId',
    component: 'Input',
    colProps: { span: 8 },
  },
  {
    label: '指示数据类型。取值范围：string、int、decimal',
    field: 'datatype',
    component: 'Select',
    componentProps: {
        options: [],
    },
    colProps: { span: 8 },
  },
  {
    label: '指示枚举值。	如开关状态status可有如下取值	"enumList" : ["OPEN","CLOSE"]	目前本字段是非功能性字段，仅起到描述作用。建议准确定义。',
    field: 'enumlist',
    component: 'Input',
    colProps: { span: 8 },
  },
  {
    label: '指示最大值。	仅当dataType为int、decimal时生效，逻辑小于等于。',
    field: 'max',
    component: 'Input',
    colProps: { span: 8 },
  },
  {
    label: '指示字符串长度。	仅当dataType为string时生效。',
    field: 'maxlength',
    component: 'Input',
    colProps: { span: 8 },
  },
  {
    label: '指示最小值。	仅当dataType为int、decimal时生效，逻辑大于等于。',
    field: 'min',
    component: 'Input',
    colProps: { span: 8 },
  },
  {
    label: '命令中参数的描述，不影响实际功能，可配置为空字符串""。',
    field: 'parameterDescription',
    colProps: { span: 8 },
  },
  {
    label: '命令中参数的名字。',
    field: 'parameterName',
    component: 'Input',
    colProps: { span: 8 },
  },
  {
    label: '指示本条属性是否必填，取值为0或1，默认取值1（必填）。	目前本字段是非功能性字段，仅起到描述作用。',
    field: 'required',
    component: 'Input',
    colProps: { span: 8 },
  },
  {
    label: '指示步长。',
    field: 'step',
    component: 'Input',
    colProps: { span: 8 },
  },
  {
    label: '指示单位。	取值根据参数确定，如：	•温度单位：“C”或“K”	•百分比单位：“%”	•压强单位：“Pa”或“kPa”',
    field: 'unit',
    component: 'Input',
    colProps: { span: 8 },
  },
  {
    label: '创建者',
    field: 'createBy',
    component: 'Input',
    colProps: { span: 8 },
  },
  {
    label: '创建时间',
    field: 'createTime',
    component: 'RangePicker',
    colProps: { span: 8 },
  },
  {
    label: '更新者',
    field: 'updateBy',
    component: 'Input',
    colProps: { span: 8 },
  },
]

export const createFormSchema: FormSchema[] = [
  {
    label: '编号',
    field: 'id',
    show: false,
    component: 'Input',
  },
  {
    label: '事件id',
    field: 'eventId',
    required: true,
    component: 'Input',
  },
  {
    label: '服务ID',
    field: 'serviceId',
    component: 'Input',
  },
  {
    label: '指示数据类型。取值范围：string、int、decimal',
    field: 'datatype',
    required: true,
    component: 'Select',
    componentProps: {
        options:[],
    },
  },
  {
    label: '指示枚举值。	如开关状态status可有如下取值	"enumList" : ["OPEN","CLOSE"]	目前本字段是非功能性字段，仅起到描述作用。建议准确定义。',
    field: 'enumlist',
    component: 'Input',
  },
  {
    label: '指示最大值。	仅当dataType为int、decimal时生效，逻辑小于等于。',
    field: 'max',
    component: 'Input',
  },
  {
    label: '指示字符串长度。	仅当dataType为string时生效。',
    field: 'maxlength',
    component: 'Input',
  },
  {
    label: '指示最小值。	仅当dataType为int、decimal时生效，逻辑大于等于。',
    field: 'min',
    component: 'Input',
  },
  {
    label: '命令中参数的描述，不影响实际功能，可配置为空字符串""。',
    field: 'parameterDescription',
    component: 'Editor',
  },
  {
    label: '命令中参数的名字。',
    field: 'parameterName',
    component: 'Input',
  },
  {
    label: '指示本条属性是否必填，取值为0或1，默认取值1（必填）。	目前本字段是非功能性字段，仅起到描述作用。',
    field: 'required',
    required: true,
    component: 'Input',
  },
  {
    label: '指示步长。',
    field: 'step',
    component: 'Input',
  },
  {
    label: '指示单位。	取值根据参数确定，如：	•温度单位：“C”或“K”	•百分比单位：“%”	•压强单位：“Pa”或“kPa”',
    field: 'unit',
    component: 'Input',
  },
  {
    label: '创建者',
    field: 'createBy',
    component: 'Input',
  },
  {
    label: '更新者',
    field: 'updateBy',
    component: 'Input',
  },
]

export const updateFormSchema: FormSchema[] = [
  {
    label: '编号',
    field: 'id',
    show: false,
    component: 'Input',
  },
  {
    label: '事件id',
    field: 'eventId',
    required: true,
    component: 'Input',
  },
  {
    label: '服务ID',
    field: 'serviceId',
    component: 'Input',
  },
  {
    label: '指示数据类型。取值范围：string、int、decimal',
    field: 'datatype',
    required: true,
    component: 'Select',
    componentProps: {
      options:[],
    },
  },
  {
    label: '指示枚举值。	如开关状态status可有如下取值	"enumList" : ["OPEN","CLOSE"]	目前本字段是非功能性字段，仅起到描述作用。建议准确定义。',
    field: 'enumlist',
    component: 'Input',
  },
  {
    label: '指示最大值。	仅当dataType为int、decimal时生效，逻辑小于等于。',
    field: 'max',
    component: 'Input',
  },
  {
    label: '指示字符串长度。	仅当dataType为string时生效。',
    field: 'maxlength',
    component: 'Input',
  },
  {
    label: '指示最小值。	仅当dataType为int、decimal时生效，逻辑大于等于。',
    field: 'min',
    component: 'Input',
  },
  {
    label: '命令中参数的描述，不影响实际功能，可配置为空字符串""。',
    field: 'parameterDescription',
    component: 'Editor',
  },
  {
    label: '命令中参数的名字。',
    field: 'parameterName',
    component: 'Input',
  },
  {
    label: '指示本条属性是否必填，取值为0或1，默认取值1（必填）。	目前本字段是非功能性字段，仅起到描述作用。',
    field: 'required',
    required: true,
    component: 'Input',
  },
  {
    label: '指示步长。',
    field: 'step',
    component: 'Input',
  },
  {
    label: '指示单位。	取值根据参数确定，如：	•温度单位：“C”或“K”	•百分比单位：“%”	•压强单位：“Pa”或“kPa”',
    field: 'unit',
    component: 'Input',
  },
  {
    label: '创建者',
    field: 'createBy',
    component: 'Input',
  },
  {
    label: '更新者',
    field: 'updateBy',
    component: 'Input',
  },
]